/**
 * Baseclass for incoming rpc calls (freerds to session manager)
 *
 * Copyright 2013 Thinstuff Technologies GmbH
 * Copyright 2013 DI (FH) Martin Haimberger <martin.haimberger@thinstuff.at>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef CALLIN_H_
#define CALLIN_H_

#include <call/Call.h>

namespace freerds{
	namespace sessionmanager{
		namespace call{

			class CallIn:public Call {

			public:
				CallIn();
				virtual ~CallIn();
				virtual unsigned long getDerivedType();

				void setEncodedRequest(std::string encodedRequest);
				virtual int decodeRequest() = 0;


				virtual int encodeResponse() = 0;
				std::string getEncodedResponse();

				virtual int doStuff() = 0;


			};

		}
	}
}

namespace callNS = freerds::sessionmanager::call;

#endif /* CALLIN_H_ */
